package cn.csc.module.distribute.controller.admin.distributor.vo;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.time.LocalDateTime;

/**
* 分销员信息 Base VO，提供给添加、修改、详细的子 VO 使用
* 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
*/
@Data
public class DistributorBaseVO {

    /**
     * 姓名
     */
    @ApiModelProperty(value = "姓名")
    private String name;

    /**
     * 手机号
     */
    @ApiModelProperty(value = "手机号")
    private String mobile;

    /**
     * 用户USERID
     */
    @ApiModelProperty(value = "用户表ID", required = true)
    @NotNull(message = "用户表ID不能为空")
    private BigInteger userId;

    /**
     * 证件类型：1 身份证，2 军官证，3 护照
     */
    @ApiModelProperty(value = "证件类型：1 身份证，2 军官证，3 护照", required = true)
    @NotNull(message = "证件类型：1 身份证，2 军官证，3 护照不能为空")
    private Integer idCardType;

    /**
     * 证件号
     */
    @ApiModelProperty(value = "证件号", required = true)
    @NotNull(message = "证件号不能为空")
    private String idCardNo;

    /**
     * 推广区域(省市县ID)
     */
    @ApiModelProperty(value = "推广区域(省市县ID)")
    private String distributeArea;

    /**
     * 推广区域(省市县ID)
     */
    @ApiModelProperty(value = "推广区域(省市县ID)")
    private String distributeAreaId;

    /**
     * 推广链接
     */
    @ApiModelProperty(value = "推广链接")
    private String distributeShortLink;

    /**
     * 推广微信二维码
     */
    @ApiModelProperty(value = "推广微信二维码")
    private String distributeWxCode;

    /**
     * 微信二维码
     */
    @ApiModelProperty(value = "微信二维码")
    private String wxCode;

    /**
     * 状态（0-待审核，1-已通过，2-需补充资料, 3-审核不通过）
     */
    @ApiModelProperty(value = "状态（0-待审核，1-已通过，2-需补充资料, 3-审核不通过）")
    private Integer status;

    /**
     * 唯一邀请码
     */
    @ApiModelProperty(value = "唯一邀请码")
    private String inviteCode;

    /**
     * 审核通过时间
     */
    @ApiModelProperty(value = "审核通过时间")
    private LocalDateTime auditTime;

    /**
     * 累计佣金
     */
    @ApiModelProperty(value = "累计佣金", required = true)
    @NotNull(message = "累计佣金不能为空")
    private BigDecimal commissionTotal;

    /**
     * 已提现佣金
     */
    @ApiModelProperty(value = "已提现佣金", required = true)
    @NotNull(message = "已提现佣金不能为空")
    private BigDecimal commissionWithdrawn;

    /**
     * 待入账佣金
     */
    @ApiModelProperty(value = "待入账佣金", required = true)
    @NotNull(message = "待入账佣金不能为空")
    private BigDecimal commissionPending;

    /**
     * 可提现佣金
     */
    @ApiModelProperty(value = "可提现佣金", required = true)
    @NotNull(message = "可提现佣金不能为空")
    private BigDecimal commissionWithdrawable;

    /**
     * 团队人数
     */
    @ApiModelProperty(value = "团队人数")
    private Integer teamNum;

    /**
     * 团队总订单
     */
    @ApiModelProperty(value = "团队总订单")
    private Integer orderNum;


}
